# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Team Fortress 2 Mann vs Machine Template

game: Team Fortress 2 Mann vs Machine
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.
  game:
    Team Fortress 2 Mann vs Machine: 1.11.0 # Version of the world required for this yaml to work as expected.

Team Fortress 2 Mann vs Machine:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  death_link:
    # When you die, everyone who enabled death link dies. Of course, the reverse is true too.
    'false': 50
    'true': 0

  #############
  # Run shape #
  #############
  mission_count:
    # How many missions the run uses.
    # 
    # The run draws them from the tiers that the difficulty pool allows. A
    # request for more missions than the pool holds gives you the whole pool.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 82
    8: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-82: 0 # random value between 1 and 82

  difficulty_pool:
    # The easiest tier that the run can draw. The run also draws every tier
    # above it.
    # 
    # The haunted tier holds only Caliginous Caper. Its wave, tank, giant and
    # completion checks provide exactly enough locations for its remaining
    # class unlocks, but it has no mission-ticket progression.
    normal: 0
    intermediate: 50
    advanced: 0
    expert: 0
    haunted: 0

  excluded_missions:
    # Missions the run never draws, by name.
    # 
    # Use it to keep out a mission that is too long for the evening. Caliginous
    # Caper is one mission of 666 robots and takes an hour on its own.
    []

  start_mission:
    # The mission the run starts on.
    # 
    # `random` starts the run on the easiest mission it drew. Name a mission
    # instead and the run always draws that one and starts there. The difficulty
    # pool has to hold it, and Excluded Missions must not.
    random: 50

  start_class:
    # The mercenary the run starts with.
    # 
    # `random` draws every starting class at random. Name one instead and the run
    # always starts with it. The tier of the start mission decides how many
    # classes the run starts with, and this option names one of them.
    random: 50

  ########
  # Goal #
  ########
  goal:
    # What ends the run.
    # 
    # Final Boss marks the most difficult mission that the run drew. Clear that
    # mission to win. Missionsanity asks for a part of the missions instead, in
    # any sequence.
    final_boss: 50
    missionsanity: 0

  missionsanity_percentage:
    # How much of the run Missionsanity asks for.
    # 
    # The percentage applies to the missions that the run drew, and it rounds up.
    # The Final Boss goal ignores this option.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 10
    # Maximum value is 100
    80: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-10-100: 0 # random value between 10 and 100

  ###########
  # Rewards #
  ###########
  mission_ticket_importance:
    # Progression tickets are required to deploy to their missions.
    # 
    # Useful tickets do not gate deployment; all missions drawn by the seed are
    # available from the start.
    useful: 0
    progression: 50

  class_unlock_importance:
    # Progression class unlocks satisfy each mission tier's class requirement.
    # 
    # Useful class unlocks still expand the roster but never block deployment.
    useful: 0
    progression: 50

  weapon_slot_importance:
    # Progression weapon slots satisfy each mission tier's loadout requirement.
    # 
    # Useful slots still expand loadouts but never block deployment.
    useful: 0
    progression: 50

  weapon_buff_importance:
    # Useful buffs are optional upgrades. Progression buffs are also required
    # in increasing numbers for harder mission tiers.
    useful: 50
    progression: 0

  cash_rewards:
    # Put cash filler in some spare checks.
    # 
    # Disabled by default because cash is temporary and less satisfying than a
    # persistent weapon buff. When disabled, every spare check is a buff.
    'false': 50
    'true': 0

  weapon_buff_percentage:
    # Percentage of spare checks that award a weapon buff when cash rewards
    # are enabled.
    # 
    # The remaining space contains cash filler. With cash rewards disabled,
    # every spare check awards a weapon buff and this option is ignored.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    75: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  weapon_buff_stack_chance:
    # Chance that a weapon-buff reward adds another level to a numeric buff
    # already drawn for this seed.
    # 
    # On/off effects are never repeated. At zero every buff reward is a distinct
    # weapon/effect permutation.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    25: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
